/*
 * @(#)AuditContext.java
 * Date 2013-11-17
 * Version 1.0
 * Author Jim Horner
 * Copyright (c)2012
 */


package us.hornerscorners.lamppost.model.audit;

import us.hornerscorners.lamppost.config.IServiceConfig;

import us.hornerscorners.lamppost.ws.AddressContext;
import us.hornerscorners.lamppost.ws.TransactionContext;


/**
 * Class description
 *
 *
 * @version        v1.0, 2013-11-17
 * @author         Jim Horner
 */
public class AuditContext {

    /** Field description */
    private final AddressContext addressContext;

    /** Field description */
    private final CodedValueType eventType;

    /** Field description */
    private final IServiceConfig serviceConfig;

    /** Field description */
    private final TransactionContext transactionContext;

    /**
     * Constructs ...
     *
     * @param eventType
     * @param transactionContext
     * @param serviceConfig
     * @param addressContext
     */
    public AuditContext(CodedValueType eventType, IServiceConfig serviceConfig,
                        TransactionContext transactionContext,
                        AddressContext addressContext) {

        super();

        this.eventType = eventType;
        this.serviceConfig = serviceConfig;
        this.transactionContext = transactionContext;
        this.addressContext = addressContext;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public AddressContext getAddressContext() {
        return addressContext;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public CodedValueType getEventType() {
        return eventType;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public IServiceConfig getServiceConfig() {
        return serviceConfig;
    }

    /**
     * Method description
     *
     *
     * @return
     */
    public TransactionContext getTransactionContext() {
        return transactionContext;
    }
}
